﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PowerMonitor.Common;

namespace PowerMonitor.BaseCtrl
{
    /// <summary>
    /// 装置通信协议基类
    /// </summary>
    public abstract class Protocols
    {
        public int strProID { get; set; }                                // 协议ID
        public string strProcName { get; set; }                          // 协议名称
        public string strDllName { get; set; }                           // 外部程序集名称       
        public string strVesion { get; set; }                            // 协议版本
        abstract public byte[] MakeSendData(ref DeviceUnit dev);             // 打包待发送数据
        abstract public bool DealReceiveData(byte[] InBytes, ref DeviceUnit pDevice);                   // 检查接收包
    }
    public class ModbusPro : Protocols
    {
        public new int strProID { get { return 0; } }                        // 协议ID
        public new string strProcName { get { return "内部Modbus协议"; } }   // 协议名称
        public new string strVesion { get { return "V14-10-0-001"; } }           // 协议版本
        public override byte[] MakeSendData(ref DeviceUnit dev)             // 打包待发送数据
        {
            return null;
        }
        public override bool DealReceiveData(byte[] InBytes, ref DeviceUnit pDevice)                   // 检查接收包
        {
            return true;
        }
    }
}
